Smart cards are portable devices that include an embedded integrated circuit. Smart cards may be passive memory devices or contain a microcontroller and associated memory for various functions. Smart card form factors include plastic cards, fobs, subscriber identification modules (SIMs), and the like. Applications for smart cards include payment systems, access control, identification, cryptographic controls and authentication in a Windows based system, and telecommunications.
Traditionally, within a Windows based system, such as a plug and play system, a smart card and a smart card reader communicate by way of answer to reset (ATR). Based upon the identified ATR, Windows would load the correct cryptographic service provider or smart card minidriver.
With the introduction of the Windows Smartcard Framework (WSF) and the anticipated future evolution of the WSF, as well as the smart card industry as a whole, the existing use of the ATR identification method may no longer be sufficient to determine which cryptographic service provider (CSP) or smart card minidriver to load for a specific smart card. Deficiencies of the use of the ATR identification method become even more apparent when the smart card contains multiple applications. The existing ATR identification method does not provide a way for the multiple applications on the smart card to be identified. In addition, further complications may arise when contactless smart cards are considered. Therefore, it is desirable to find ways to improve upon these deficiencies.